<?php defined('SYSPATH') or die('No direct script access.') ;
/**
 * 扩展 Kohana_Valid 类
 *
 * @author  Yellow.Chow <aultoale@gmail.com>
 * @version $Id: valid.php 163 2012-04-20 09:47:16Z yellow.chow $
 * @license http://www.gnu.org/licenses/gpl-3.0.html    GPL 3
 */
class Valid extends Kohana_Valid
{

    /**
     * 忽略大小写判断是否相等
     *
     * @param  mixed  $value
     * @param  mixed  $target
     * @return bool
     */
    public static function case_equals($value, $target)
    {
        if (is_string($value) AND is_string($target))
        {
            $value = strtolower($value);
            $target = strtolower($target);
        }

        return self::equals($value, $target);
    }

    /**
     * 是否不相等
     *
     * @param  mixed  $value
     * @param  mixed  $target
     * @return bool
     */
    public static function not_equals($value, $target)
    {
        return ! self::equals($value, $target);
    }

    /**
     * 是否大于指定的值
     *
     * @param  int  $value
     * @param  int  $min
     * @return bool
     */
    public static function greater_than($value, $min = 0)
    {
        return $value > $min;
    }

    /**
     * 是否大于等于指定的值
     *
     * @param  int  $value
     * @param  int  $min
     * @return bool
     */
    public static function greater_equal_than($value, $min = 0)
    {
        return $value >= $min;
    }

    /**
     * 是否小于指定的值
     *
     * @param  int  $value
     * @param  int  $max
     * @return bool
     */
    public static function less_than($value, $max = 0)
    {
        return $value < $max;
    }

    /**
     * 是否小于等于指定的值
     *
     * @param  int  $value
     * @param  int  $max
     * @return bool
     */
    public static function less_equal_than($value, $max = 0)
    {
        return $value <= $max;
    }

    /**
     * 是否有效的邮编
     *
     * @param  string  $value
     * @return bool
     */
    public static function postalcode($value)
    {
        return (bool) preg_match('/^\d{6,8}$/', $value);
    }

    /**
     * 是否有效的手机号码
     *
     * @param  string  $value
     * @return bool
     */
    public static function mobile($value)
    {
        return (bool) preg_match('/^((13[0-9])|(15[^4,\D])|(18[0,5-9]))\d{8}$/', $value);
    }

    /**
     * 判断是否有效的 QQ 号码
     */
    public static function qq($value)
    {
        return (bool) preg_match('/^\d{5,12}$/', $value);
    }

}